#region License Information
// Copyright (c) 2005 - 2009, Allan Spartacus Mangune (allan@owlpal.com)
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, 
// are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list 
//   of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright notice, this list of 
//   conditions and the following disclaimer in the documentation and/or other materials provided 
//   with the distribution.
//
// * Neither the name of Owlpal nor the names of its contributors may be used to endorse or 
//   promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 
// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
#endregion

using System;
using System.Collections.Generic;
using System.Text;

namespace Owlpal.Utils
{
    public class Modifier
    {
        public static string Modify(string _string, int length)
        {
            string retVal = string.Empty;
            string noAmpersand = _string.Replace("&", "And");
            string noSpaces = noAmpersand.Replace(" ", "_");
            string noDoubleQuote = noSpaces.Replace("\"", "_");
            string noQuestionMark = noDoubleQuote.Replace("?", "_");
            string noColon = noQuestionMark.Replace(":", "_");
            string noBackSlash = noColon.Replace("/", "_");
            string noForwardSlash = noBackSlash.Replace("\\", "_");
            string noGreaterThan = noForwardSlash.Replace(">", "_");
            string noLessThan = noGreaterThan.Replace("<", "_");
            string noBar = noLessThan.Replace("|", "_");
            string noStar = noBar.Replace("\\*", "_");
            if (noStar.Length > length)
            {
                retVal = noStar.Remove(length, noStar.Length - length);
            }
            else
            {
                retVal = noStar;
            }
            return retVal;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public static string ConvertMonthToText(int num)
        {
            string retVal = string.Empty;
            switch (num)
            {
                case 1: retVal = "January"; break;
                case 2: retVal = "February"; break;
                case 3: retVal = "March"; break;
                case 4: retVal = "April"; break;
                case 5: retVal = "May"; break;
                case 6: retVal = "June"; break;
                case 7: retVal = "July"; break;
                case 8: retVal = "August"; break;
                case 9: retVal = "September"; break;
                case 10: retVal = "October"; break;
                case 11: retVal = "November"; break;
                case 12: retVal = "December"; break;
            }
            return retVal;
        }

    }
}
